あなたの知らないnpm installの簡略記法

あなたの知らないnpm installの簡略記法

npm-installのWebドキュメントを見ていたところ、Gistなどでホストされているnpmパッケージの指定方法に簡略記法が用意されていることを知りました。今回はその簡略記法について共有します。
Clock Icon2019.08.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。サービスグループの武田です。

npm-installのWebドキュメントを見ていたところ、Gistなどでホストされているnpmパッケージの指定方法に簡略記法が用意されていることを知りました。今回はその簡略記法について共有します。

検証環境

$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.14.6
BuildVersion:	18G87

$ npm --version
6.9.0

コマンドヘルプとドキュメントについて

先に言い訳をしておくと、普段は--helpで軽く確認するくらいで困らないため、あまりドキュメントを見ていなかったということがあります。今回の件はWebドキュメントを確認して知りました。

$ npm install --help

npm install (with no args, in package dir)
npm install [<@scope>/]<pkg>
npm install [<@scope>/]<pkg>@<tag>
npm install [<@scope>/]<pkg>@<version>
npm install [<@scope>/]<pkg>@<version range>
npm install <folder>
npm install <tarball file>
npm install <tarball url>
npm install <git:// url>
npm install <github username>/<github project>

こちらがWebドキュメント。

npm-install | npm Documentation

またコマンドラインでも同じドキュメントが確認できます(npm helpも使ったことありませんでした)。

# npm helpで確認
$ npm help install

# manコマンドで確認
$ man npm-install

4種類の簡略記法

npm installではパッケージ名やURLを指定する以外に、次の4種類の簡略記法(プレフィックス)をサポートしています。

  • github
    • npm install github:<githubname>/<githubrepo>[#<commit-ish>]
    • npm install <githubname>/<githubrepo>[#<commit-ish>]と同じ
  • gist
    • npm install gist:[<githubname>/]<gistID>[#<commit-ish>|#semver:<semver>]
  • bitbucket
    • npm install bitbucket:<bitbucketname>/<bitbucketrepo>[#<commit-ish>]
  • gitlab
    • npm install gitlab:<gitlabname>/<gitlabrepo>[#<commit-ish>]

GitHubリポジトリ指定時にgithub:は省略可能で、個人的には明示的に書く必要は感じません。またGistについてはgithubnameが省略可能で、gist:の後にgitstIDを指定するだけでもOKです。GitHub、Bitbucket、GitLabについてはnameが必要です。

npxで使ってみる

ところで、先日npxのエントリを書きました。

知らないのは損!npmに同梱されているnpxがすごい便利なコマンドだった

npxはパッケージのインストールに、内部的にnpm installを使っています。つまり今回紹介した簡略記法はnpxでも利用可能です。実際に試してみました。

$ npx gist:1cd52daf43b11e9d2c72aa6ab0be59a3
npx: 1個のパッケージを4.783秒でインストールしました。
yay gist

シンプル!すばら!

まとめ

npxコマンドの調査をきっかけにいろいろと新しいことが知れています。やはりドキュメントはちゃんと読んだ方がいいですね!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.